package com.fmm.medium;

public class BulbSwitch {

    /**
     * n 个灯泡，初始状态都为关闭
     * 一共进行 n 轮，从 1 开始
     * 第 i 轮：每隔 i 个灯泡按动一下开关
     * n 轮结束后还有几个灯亮着
     *
     * @param n 灯泡数量，初始状态都是关闭
     * @return n 轮之后亮着的灯泡数量
     * */
    public static int bulbSwitch(int n) {
        int result = 0;
        for (int i = 1;; i++) {
            // 只有完全平方数的灯会有奇数次变动，只有奇数次变动的最终才会亮
            if (i * i <= n) {
                result++;
            } else {
                return result;
            }
        }
    }
}
